package com.whjfxx.terminal.biz.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.whjfxx.terminal.biz.param.*;
import com.whjfxx.terminal.biz.vo.LoginVo;
import com.whjfxx.terminal.biz.vo.UserVo;
import com.whjfxx.terminal.entity.User;

import java.util.List;

public interface UserService extends IService<User> {

    /**
     * 登录
     * @param loginParam
     * @return
     */
    LoginVo signIn(LoginParam loginParam);

    /**
     * 添加用户
     * @param param
     */
    void add(UserAddParam param);

    /**
     * 编辑保存
     * @param param
     */
    void edit(UserEditParam param);

    /**
     * 设置图标
     * @param userId
     * @param icoUrl
     */
    void updateIco(Long userId, String icoUrl);

    /**
     * 分页查询
     * @param searchParam
     * @return
     */
    Page<UserVo> pageList(SearchParam<UserPageParam> searchParam);

    /**
     * 更新status
     * @param id
     * @param status
     */
    void setStatus(Long id, int status);

    /**
     * 批量删除
     * @param asList
     */
    void deleteByIds(List<Long> asList);

    /**
     * 锁定用户  （锁定 30分钟）
     * @param userId
     */
    void lockUser(Long userId);

    /**
     * 解锁账号
     * @param userId
     */
    void unLockUser(Long userId);

}
